package zhongbo.java.air.auth.service;

import zhongbo.java.air.auth.vo.AuthResponseVo;

/**
 * 说明：
 *
 * @author 钟波dellNotebook
 * @since 2025年03月29日 星期六 11:06:00
 */
public interface IAuthService {

    /**
     * 用户注册
     *
     * @param username 用户名
     * @param password 密码
     * @return 注册成功后的用户信息或令牌
     */
    AuthResponseVo register(String username, String password);

    /**
     * 用户登录
     *
     * @param username 用户名
     * @param password 密码
     * @return 认证成功后的用户信息或令牌
     */
    AuthResponseVo login(String username, String password);

    /**
     * 用户登出
     *
     * @param token 令牌
     */
    void logout(String token);

    /**
     * 验证令牌
     *
     * @param token 令牌
     * @return 验证结果
     */
    boolean validateToken(String token);

    /**
     * 获取登录信息
     *
     * @param token 令牌
     * @return 用户信息或令牌
     */
    AuthResponseVo getTokenInfo(String token);

    /**
     * 刷新令牌
     *
     * @param token 刷新令牌
     * @return 新的令牌
     */
    AuthResponseVo refreshToken(String token);

}
